policies.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { PageContainer } from 'ui-patterns/PageContainer'
  2. import {
  3. PageHeader,
  4. PageHeaderAside,
  5. PageHeaderDescription,
  6. PageHeaderMeta,
  7. PageHeaderSummary,
  8. PageHeaderTitle,
  9. } from 'ui-patterns/PageHeader'
  10. import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
  11. import { RealtimePolicies } from '@/components/interfaces/Realtime/Policies'
  12. import DefaultLayout from '@/components/layouts/DefaultLayout'
  13. import RealtimeLayout from '@/components/layouts/RealtimeLayout/RealtimeLayout'
  14. import { DocsButton } from '@/components/ui/DocsButton'
  15. import { DOCS_URL } from '@/lib/constants'
  16. import type { NextPageWithLayout } from '@/types'
  17. const RealtimePoliciesPage: NextPageWithLayout = () => {
  18. return (
  19. <>
  20. <PageHeader size="large">
  21. <PageHeaderMeta>
  22. <PageHeaderSummary>
  23. <PageHeaderTitle>Policies</PageHeaderTitle>
  24. <PageHeaderDescription>Control access to your realtime channels</PageHeaderDescription>
  25. </PageHeaderSummary>
  26. <PageHeaderAside>
  27. <DocsButton href={`${DOCS_URL}/guides/realtime/authorization`} />
  28. </PageHeaderAside>
  29. </PageHeaderMeta>
  30. </PageHeader>
  31. <PageContainer size="large">
  32. <PageSection>
  33. <PageSectionContent>
  34. <RealtimePolicies />
  35. </PageSectionContent>
  36. </PageSection>
  37. </PageContainer>
  38. </>
  39. )
  40. }
  41. RealtimePoliciesPage.getLayout = (page) => (
  42. <DefaultLayout>
  43. <RealtimeLayout title="Policies">{page}</RealtimeLayout>
  44. </DefaultLayout>
  45. )
  46. export default RealtimePoliciesPage